package ebj.common.base.print_chen;

// 默认使用文件中的字符   华文隶书字体  没有参数或对应的参数不合法  
// 包含一个参数且该参数合法   使用该参数的第一个字符  

public class PrintChenApplication {
	public enum FontType {
		FONT_LS, // 隶书
		FONT_ST, // 宋体
		FONT_FS, // 方正舒体
		FONT_YY, // 幼圆
		FONT_HT, // 黑体
		FONT_KT, // 楷体

		FONT_UNKNOWN; // 不明类型
	}

	// 参数1 获取填充字符
	public static char getFillChar(String arg) {
		int ch = (int) arg.charAt(0);
		if ((ch > 0x20) && (ch < 0x7F)) // 在此区间为可见字符
			return (char) ch;

		return '#';
	}

	// 参数2 获取字体类型
	public static FontType getFontType(String arg) {
		if (0 == arg.compareToIgnoreCase("ls"))
			return FontType.FONT_LS;
		else if (0 == arg.compareToIgnoreCase("st"))
			return FontType.FONT_ST;
		else if (0 == arg.compareToIgnoreCase("fs"))
			return FontType.FONT_FS;
		else if (0 == arg.compareToIgnoreCase("yy"))
			return FontType.FONT_YY;
		else if (0 == arg.compareToIgnoreCase("ht"))
			return FontType.FONT_HT;
		else if (0 == arg.compareToIgnoreCase("kt"))
			return FontType.FONT_KT;

		// 默认为 隶书
		return FontType.FONT_LS;
	}

	public static void main(String arg[]) {
		char fill_ch = '*';
		FontType font_type = FontType.FONT_LS;

		int arg_length = arg.length;
		if (arg_length == 1)
			fill_ch = getFillChar(arg[0]);
		else if (arg_length > 1) {
			fill_ch = getFillChar(arg[0]);
			font_type = getFontType(arg[1]);
		}

		boolean read_success = false;
		ChenOperator chen = new ChenOperator();
		// 读取字符文件
		switch (font_type) {
		case FONT_LS:
			read_success = chen.readTxtFile("华文隶书.txt");
			break;
		case FONT_ST:
			read_success = chen.readTxtFile("\\JavaTest\\jdk\\files\\宋体.txt");
			break;
		case FONT_FS:
			read_success = chen.readTxtFile("\\JavaTest\\jdk\\files\\方正舒体.txt");
			break;
		case FONT_YY:
			read_success = chen.readTxtFile("\\JavaTest\\jdk\\files\\幼圆.txt");
			break;
		case FONT_HT:
			read_success = chen.readTxtFile("\\JavaTest\\jdk\\files\\黑体.txt");
			break;
		case FONT_KT:
			read_success = chen.readTxtFile("\\JavaTest\\jdk\\files\\华文楷体.txt");
			break;
		default:
			read_success = chen.readTxtFile("\\JavaTest\\jdk\\files\\华文隶书.txt");
			break;
		}

		// 文件读取失败，直接返回
		if (!read_success) {
			System.out.println("读取文件失败!");
			return;
		}

		// 打印出字符
		chen.printChars(fill_ch);
	}
}